/**
 * 贪心
以数组 intervals 表示若干个区间的集合，其中单个区间为 intervals[i] = [starti, endi] 。
请你合并所有重叠的区间，并返回 一个不重叠的区间数组，该数组需恰好覆盖输入中的所有区间 。
示例 1：
输入：intervals = [[1,3],[2,6],[8,10],[15,18]] 输出：[[1,6],[8,10],[15,18]]
解释：区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
示例 2：
输入：intervals = [[1,4],[4,5]] 输出：[[1,5]]
解释：区间 [1,4] 和 [4,5] 可被视为重叠区间。
 */
var merge = function(intervals) {
  intervals.sort((a,b) => a[0] - b[0]); //注意回调的函数体 {} 和没有{}
  let pre = intervals[0];
  let result = [];
  for(let i = 0;i<intervals.length;i++){
    let curr = intervals[i];
    if(curr[0] > pre[1]){
      //没有重叠，直接加入结果，指针后移
      result.push(pre);
      pre = curr;
    }else{
      //有重叠，结束边界取最大值
      pre[1] = Math.max(curr[1],pre[1]);
    }
  }
  result.push(pre);
  return result;
};
const intervals = [[1,3],[2,6],[8,10],[15,18]]
console.log(merge(intervals))